package com.bookcloud.java21.chapter11.List接口实现类111;

import java.util.*;

public class ListExamples {
  public static void main(String[] args) {
    // 一、ArrayList 事例
    List<String> arrayList = new ArrayList<>();
    arrayList.add("Apple");
    arrayList.add("Banana");
    arrayList.add("Cherry");
    System.out.println("ArrayList 中的元素为：" + arrayList);
    // 序号取值
    String firstElement = arrayList.get(0);
    System.out.println("第一个元素为：" + firstElement);
    // 序号修改
    arrayList.set(1, "Blueberry");
    System.out.println("修改后的 ArrayList 为：" + arrayList);
    // 二、LinkedList 事例
    List<String> linkedList = new LinkedList<>();
    linkedList.add("Apple");
    linkedList.add("Banana");
    linkedList.add("Cherry");
    System.out.println("LinkedList 中的元素为：" + linkedList);
    // 序号取值
    String firstElement2 = linkedList.get(1);
    System.out.println("第二个元素为：" + firstElement2);
    // 序号修改
    linkedList.set(1, "Blueberry");
    System.out.println("修改后的 LinkedList 为：" + linkedList);
    // 三、Vector 事例
    Vector<String> vector = new Vector<>();
    vector.add("Apple");
    vector.add("Banana");
    vector.add("Cherry");
    System.out.println("Vector 中的元素为：" + vector);
    // 序号取值
    String firstElement3 = vector.get(0);
    System.out.println("第一个元素为：" + firstElement3);
    // 四、Stack 事例 ：先进后出
    Stack<String> stack = new Stack<>();
    stack.push("Apple");
    stack.push("Banana");
    stack.push("Cherry");
    stack.push("Orange");
    stack.push("Peach");
    stack.push("Plum");

    System.out.println("Stack 中的元素为：" + stack);
    // 弹出栈的过程
    String popElement = stack.pop();
    System.out.println("弹出的元素为：" + popElement);
    System.out.println("弹出后的 Stack 为：" + stack);
    // 查看栈顶元素
    String peekElement = stack.peek();
    System.out.println("栈顶元素为：" + peekElement);
    System.out.println("Pop 后的栈顶元素为：" + stack.pop());
    System.out.println("Pop 后的栈顶元素为：" + stack.pop());
    System.out.println("Pop 后的栈顶元素为：" + stack.pop());
    // 四、Queue 事例 ：先进先出
    Queue<String> queue = new LinkedList<>();
    queue.add("Apple");
    queue.add("Banana");
    queue.add("Cherry");
    queue.add("Orange");
    queue.add("Peach");
    queue.add("Plum");
    System.out.println("Queue 中的元素为：" + queue);
    System.out.println("Poll 后的队列元素为：" + queue.poll());
    System.out.println("Poll 后的队列元素为：" + queue.poll());
    System.out.println("Poll 后的队列元素为：" + queue.poll());
  }
}
